<?xml version="1.0" encoding="utf-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.w3.org/2001/04/xmlenc#" elementFormDefault="qualified" version="1.0">
	<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
	<complexType name="EncryptedType" abstract="true">
		<sequence>
			<element name="EncryptionMethod" type="xenc:EncryptionMethodType" minOccurs="0"/>
			<element ref="ds:KeyInfo" minOccurs="0"/>
			<element ref="xenc:CipherData"/>
			<element ref="xenc:EncryptionProperties" minOccurs="0"/>
		</sequence>
		<attribute name="Id" type="ID" use="optional"/>
		<attribute name="Type" type="anyURI" use="optional"/>
		<attribute name="MimeType" type="string" use="optional"/>
		<attribute name="Encoding" type="anyURI" use="optional"/>
	</complexType>
	<complexType name="EncryptionMethodType" mixed="true">
		<sequence>
			<element name="KeySize" type="xenc:KeySizeType" minOccurs="0"/>
			<element name="OAEPparams" type="base64Binary" minOccurs="0"/>
			<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="Algorithm" type="anyURI" use="required"/>
	</complexType>
	<simpleType name="KeySizeType">
		<restriction base="integer"/>
	</simpleType>
	<element name="CipherData" type="xenc:CipherDataType"/>
	<complexType name="CipherDataType">
		<choice>
			<element name="CipherValue" type="base64Binary"/>
			<element ref="xenc:CipherReference"/>
		</choice>
	</complexType>
	<element name="CipherReference" type="xenc:CipherReferenceType"/>
	<complexType name="CipherReferenceType">
		<choice>
			<element name="Transforms" type="xenc:TransformsType" minOccurs="0"/>
		</choice>
		<attribute name="URI" type="anyURI" use="required"/>
	</complexType>
	<complexType name="TransformsType">
		<sequence>
			<element ref="ds:Transform" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<element name="EncryptedData" type="xenc:EncryptedDataType"/>
	<complexType name="EncryptedDataType">
		<complexContent>
			<extension base="xenc:EncryptedType"/>
		</complexContent>
	</complexType>
	<!-- Children of ds:KeyInfo -->
	<element name="EncryptedKey" type="xenc:EncryptedKeyType"/>
	<complexType name="EncryptedKeyType">
		<complexContent>
			<extension base="xenc:EncryptedType">
				<sequence>
					<element ref="xenc:ReferenceList" minOccurs="0"/>
					<element name="CarriedKeyName" type="string" minOccurs="0"/>
				</sequence>
				<attribute name="Recipient" type="string" use="optional"/>
			</extension>
		</complexContent>
	</complexType>
	<element name="AgreementMethod" type="xenc:AgreementMethodType"/>
	<complexType name="AgreementMethodType" mixed="true">
		<sequence>
			<element name="KA-Nonce" type="base64Binary" minOccurs="0"/>
			<!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
			<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
			<element name="OriginatorKeyInfo" type="ds:KeyInfoType" minOccurs="0"/>
			<element name="RecipientKeyInfo" type="ds:KeyInfoType" minOccurs="0"/>
		</sequence>
		<attribute name="Algorithm" type="anyURI" use="required"/>
	</complexType>
	<!-- End Children of ds:KeyInfo -->
	<element name="ReferenceList">
		<complexType>
			<choice maxOccurs="unbounded">
				<element name="DataReference" type="xenc:ReferenceType"/>
				<element name="KeyReference" type="xenc:ReferenceType"/>
			</choice>
		</complexType>
	</element>
	<complexType name="ReferenceType">
		<sequence>
			<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="URI" type="anyURI" use="required"/>
	</complexType>
	<element name="EncryptionProperties" type="xenc:EncryptionPropertiesType"/>
	<complexType name="EncryptionPropertiesType">
		<sequence>
			<element ref="xenc:EncryptionProperty" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="Id" type="ID" use="optional"/>
	</complexType>
	<element name="EncryptionProperty" type="xenc:EncryptionPropertyType"/>
	<complexType name="EncryptionPropertyType" mixed="true">
		<choice maxOccurs="unbounded">
			<any namespace="##other" processContents="lax"/>
		</choice>
		<attribute name="Target" type="anyURI" use="optional"/>
		<attribute name="Id" type="ID" use="optional"/>
		<anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
	</complexType>
</schema>
